home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / arch / um / include / asm / system.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-12-24  |  1.1 KB  |  36 lines

  1. #ifndef __UM_SYSTEM_GENERIC_H
  2. #define __UM_SYSTEM_GENERIC_H
  3.  
  4. #include "sysdep/system.h"
  5.  
  6. extern void *switch_to(void *prev, void *next, void *last);
  7.  
  8. extern int get_signals(void);
  9. extern int set_signals(int enable);
  10. extern int get_signals(void);
  11. extern void block_signals(void);
  12. extern void unblock_signals(void);
  13.  
  14. #define local_save_flags(flags) do { typecheck(unsigned long, flags); \
  15.                      (flags) = get_signals(); } while(0)
  16. #define local_irq_restore(flags) do { typecheck(unsigned long, flags); \
  17.                       set_signals(flags); } while(0)
  18.  
  19. #define local_irq_save(flags) do { local_save_flags(flags); \
  20.                                    local_irq_disable(); } while(0)
  21.  
  22. #define local_irq_enable() unblock_signals()
  23. #define local_irq_disable() block_signals()
  24.  
  25. #define irqs_disabled()                 \
  26. ({                                      \
  27.         unsigned long flags;            \
  28.         local_save_flags(flags);        \
  29.         (flags == 0);                   \
  30. })
  31.  
  32. extern void *_switch_to(void *prev, void *next, void *last);
  33. #define switch_to(prev, next, last) prev = _switch_to(prev, next, last)
  34.  
  35. #endif
  36.